// 这个文件定义了一个名为 useKeepAlive 的 store，用于管理需要保持活跃状态的路由列表。
// 它提供了添加和删除路由的方法，以及一个存储活跃路由的列表。
// 当路由需要保持活跃状态时，可以使用 pushKeepAliveList 方法将其添加到列表中。
// 当路由不再需要保持活跃状态时，可以使用 removeKeepAliveList 方法将其从列表中删除。

import { ref, computed } from 'vue'
import { defineStore } from 'pinia'
import { RouteLocationNormalized, RouteRecordName, RouteRecordRaw } from 'vue-router'
export type RouterName = (RouteRecordName | null | undefined) 
export const useKeepAlive = defineStore('counter', () => {
  const keepAliveList = ref<RouterName[]>([])
  const pushKeepAliveList = (routeName: RouterName) => {
    keepAliveList.value.push(routeName)
  }
  const removeKeepAliveList = (route: RouteLocationNormalized | RouteRecordRaw) => {
    const findIndex = keepAliveList.value.findIndex((item) => item === route.name)
    if(findIndex > -1) {
        keepAliveList.value.splice(findIndex, 1)
    }
  }

  return {
    keepAliveList,
    pushKeepAliveList,
    removeKeepAliveList
  }
})
